#!/bin/bash

# 急救转运系统开发环境设置脚本

echo "🚀 开始设置急救转运系统开发环境..."

# 检查必要的工具
echo "📋 检查开发工具..."

# 检查Node.js
if ! command -v node &> /dev/null; then
    echo "❌ Node.js未安装，请先安装Node.js 16+"
    exit 1
fi

# 检查Java
if ! command -v java &> /dev/null; then
    echo "❌ Java未安装，请先安装Java 8+"
    exit 1
fi

# 检查Maven
if ! command -v mvn &> /dev/null; then
    echo "❌ Maven未安装，请先安装Maven 3.6+"
    exit 1
fi

# 检查Docker
if ! command -v docker &> /dev/null; then
    echo "❌ Docker未安装，请先安装Docker"
    exit 1
fi

# 检查Docker Compose
if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose未安装，请先安装Docker Compose"
    exit 1
fi

echo "✅ 开发工具检查完成"

# 创建必要的目录
echo "📁 创建项目目录..."
mkdir -p logs
mkdir -p uploads
mkdir -p nginx/ssl
mkdir -p nginx/conf

# 安装前端依赖
echo "📦 安装前端依赖..."
cd app
if [ -f "package.json" ]; then
    npm install
    echo "✅ 前端依赖安装完成"
else
    echo "⚠️  前端package.json不存在，跳过依赖安装"
fi
cd ..

# 安装后端依赖
echo "📦 安装后端依赖..."
cd admin-service
if [ -f "pom.xml" ]; then
    mvn clean install -DskipTests
    echo "✅ 后端依赖安装完成"
else
    echo "⚠️  后端pom.xml不存在，跳过依赖安装"
fi
cd ..

# 启动数据库和Redis
echo "🐳 启动数据库和Redis服务..."
docker-compose up -d mysql redis

# 等待数据库启动
echo "⏳ 等待数据库启动..."
sleep 30

# 检查数据库连接
echo "🔍 检查数据库连接..."
if docker-compose exec mysql mysqladmin ping -h localhost -u root -ppassword --silent; then
    echo "✅ 数据库连接正常"
else
    echo "❌ 数据库连接失败"
    exit 1
fi

# 导入数据库脚本
echo "📊 导入数据库脚本..."
if [ -d "admin-service/sql" ]; then
    docker-compose exec mysql mysql -u root -ppassword dryadnet < admin-service/sql/ry_20250522.sql
    echo "✅ 数据库脚本导入完成"
else
    echo "⚠️  数据库脚本目录不存在，跳过导入"
fi

echo "🎉 开发环境设置完成！"
echo ""
echo "📝 下一步操作："
echo "1. 启动后端服务: cd admin-service && mvn spring-boot:run"
echo "2. 启动前端服务: cd app && npm run dev:h5"
echo "3. 访问管理后台: http://localhost:8080"
echo "4. 访问移动端: http://localhost:9090"
echo ""
echo "🔧 其他命令："
echo "- 停止服务: docker-compose down"
echo "- 查看日志: docker-compose logs -f"
echo "- 重启服务: docker-compose restart"
